/**
 * fileName:  FruitCategoryStore.java
 * author:  Lei
 * Company:  Cloudland Studio
 * Createdate:  2014-5-29 下午10:56:54
 *
 * All rights Reserved, Designed By cloudland Copyright(C) 2010-2011
 *   
 * Modification  History:
 *     Date           Author        Version        
 * -------------------------------------------
 * 2014-5-29          Lei            1.0        
 *
 * Why & What is modified:
 * 1.0: 文件创建
 */
package org.cloudland.commercial.masterdata.handler;

import org.cloudland.commercial.masterdata.bean.FruitCategoryInfo;
import org.cloudland.commercial.masterdata.bean.ParamValueRelation;

 /**
 * <pre> 
 * TODO 请充分描述该类提供的作用, 或与其他类会有关联的使用。
 * 使用 java.lang.Object#toString(), 或者 {@link java.lang.Character Character} 等标签
 * </pre>
 * @ClassName  FruitCategoryStore
 * @author  Lei
 * @version  %I%, %G%
 * @see  
 * @since   JDK1.6
 *
 */
public interface FruitCategoryStore {
	
	/**
	 * <pre>
	 * 创建水果分类信息
	 * </pre>
	 *
	 * @return   
	 */
	FruitCategoryInfo createCategory();
	
	/**
	 * <pre>
	 * 创建参数与值关系
	 * </pre>
	 *
	 * @return   
	 */
	ParamValueRelation createParamValueRelation(String categoryId);
	
	/**
	 * <pre>
	 * 查询水果分类信息
	 * </pre>
	 *
	 * @param categoryId
	 * @return   
	 */
	FruitCategoryInfo findCategory(String categoryId);
	
	/**
	 * <pre>
	 * 根据引用关系编号查询分类引用参数与值关系接口
	 * </pre>
	 *
	 * @param relationId
	 * @return   
	 */
	ParamValueRelation findParamValueRelationById(String relationId);
	
	/**
	 * <pre>
	 * 继承查询该分类及父类的引用参数关系信息
	 * </pre>
	 *
	 * @param categoryId
	 * @return   
	 */
	//ParamValueRelation[] findExtendParamValueRelationById(String categoryId);
	
	/**
	 * <pre>
	 * 删除水果分类信息
	 * </pre>
	 *   
	 */
	void remove(String categoryId);
	
	/**
	 * <pre>
	 * 删除分类引入参数
	 * </pre>
	 *
	 * @param relationId   
	 */
	void removeParamValueRelation(String relactionId);
	
	/**
	 * <pre>
	 * 查询根节点分类信息
	 * </pre>
	 *
	 * @return   
	 */
	FruitCategoryInfo[] findRootCategory();

}
